-----------------------------------------------------------
INSTALLATION GUIDE
-----------------------------------------------------------

For any additional installation help, please go to http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-tools/2602016-partial-modification-loader-


PML has an absolute prerequisite of Java 7 or above. Any such build will work. PML cannot be made to work with Java 6 and earlier.

These installation instructions are for PML for Minecraft.

CLIENT INSTALLATION
--------------------------------------------------------

  Manual Standard Client Installation 
  --------------------------------------------------
   1. Install any client dependencies you need (such as Forge)
   2. Extract the contents of PML's zip folder (this zip file) directly into the Minecraft directory you are using (usually the .minecraft folder)
   3. Open the Minecraft launcher, and click the "edit profile" button for the profile you want to add PML to.
     a. In the "JVM Arguments" section, add the following (with one space before and after any other jvm arguments), then save the profile:
            -javaagent:PMLCore/PMLPremain.jar=-MCSide:Client
     b. Change the option for launcher visibility so the launcher stays open after launch. This will help significantly with debugging simple installation problems.
   4. Install everything else you may need (such as obfuscation relation add-ons)


  Manual Standard Technic Client Installation
  --------------------------------------------------
  Complete all these steps before packaging and distributing your modpack - PML should be distributed as a part of your modpack
   1. Extract the contents of PML's zip folder (this zip file) directly into the minecraft directory you are staging in
   2. Open the jarmod/Forge jar and do the following. "Open" is not the same as "Extract-and-recompress-later." Extracting and recompressing the Forge jar will not work, and will cause the game to not load.
     a. Delete everything in the META-INF folder, [u]other than MANIFEST.MF[/u]. You should not touch the MANIFEST.MF file.
     b. Open the version.json file and add the following entry in json, then save it back to the Forge jar. This is something the Technic Launcher supports, and is not supported by vanilla or other launchers. If the key already exists, append this and the existing entry's values, separated by a space.
            "javaArguments": "-javaagent:PMLCore/PMLPremain.jar=-MCSide:Client"
   3. Install everything else you may need (such as obfuscation relation add-ons)


SERVER INSTALLATION
--------------------------------------------------------
Note: PML cannot be used with its standard server installation on Mac computers running Java 7 build 45 and later, including all of Java 8 - this is a bug with the Mac edition of Java, and has already been declared unimportant by the Mac Java developers involved. If you want to run a server with PML on Mac, I suggest using the alternate server installation rather than downgrading to an older, and less secure, version of Java.

All server installation instructions assume that you are starting with an already-functioning server, and have access to the server files.


 Manual Standard Server Installation
 -----------------------------------------------------
   1. Extract the contents of PML's zip folder (this zip file) directly into the Minecraft server directory you are using
   2. Whenever you run the server, add the following directly after the "java" command - this can be done via scripts instead of requiring you to go through the terminal/console/command-prompt all the time. >Put this in the same place as the memory arguments!<
            -javaagent:PMLCore/PMLPremain.jar=-MCSide:Server
   3. Install everything else you may need (such as obfuscation relation add-ons)


 Manual Alternate Server Installation
 -----------------------------------------------------
   1. Extract the contents of PML's zip folder (this zip file) directly into the Minecraft server directory you are using
   2. Move all files within the "PMLCore" folder that you extracted to your server directory itself (up one layer), leaving the "PML" folder where you extracted it. (The files that were in "PMLCore" should now be directly in your server's main directory.)
   3. Open the "PMLPremain.jar" file (as a zip file) and edit the manifest in the "META-INF" folder
     a. Replace "Premain-Class" with "Main-Class"
   4. Open your server jar, open the containing manifest file in the "META-INF" folder, and copy what the "Main-Class" is set to (do not copy the colon or space)
   5. Rename your server jar to something else, and rename the "PMLPremain.jar" to what your server jar was originally named.
   6. Edit the "PML_generalSystemProperties.cfg" file. This file starts with explaining how to work with and format the settings you are about to use.
     a. Set "pml.dev.agentArgs" to "-MCSide:Server"
     b. Set "pml.proxyMain" to what you copied in step 4
     c. Set "pml.useMainJar" to what you renamed your server jar to in step 5
   7. Install everything else you may need (such as obfuscation relation add-ons)
   8. When you are ready to run/test your server, start the server with the same launch script you used before installing PML


ADVANCED INSTALLATIONS
--------------------------------------------------------

  Mod Folder Client Installation
  --------------------------------------------------
  This installation lets PML be distributed from within the mods folder, to make version control easier in modpacks (such as Technic). The java argument is still required.
    1. Extract the contents of PML's "PMLCore" folder from the PML zip folder (this zip file) directly into the Minecraft mods folder
    2. Extract the "PML" folder in the zip folder into the .minecraft folder
    3. Change the extension of all the ".jar" files from the "PMLCore" folder you extracted to ".jar2"
    4. Modify the "PML_generalSystemProperties.cfg" file as follows
      a. Change the "pml.coreInstallFolder" key to have "mods/PML/installs" as a value
    5. Add the javaagent jvm argument to your launch script (see client/server installation instructions)
      a. Instead of "PMLCore/PMLPremain.jar", put "mods/PMLPremain.jar2"


  Potentially-Unneeded Installation (Client)
  --------------------------------------------------
  This installation is useful for installing in launchers that do not support modpack jvm arguments, but do support PML's general function. This isn't a good way to install PML, as PML will not cause a crash when a serious issue arises (such as non-immediate bad installation). In other words, this installation is useful when PML is potentially unneeded/unwanted.
    1. Extract the "PMLCore" folder from the PML zip folder (this file) to somewhere on your computer that is easy to access, but not in the way, and not containing spaces in any part of the full directory path. Copy the full directory path (the rest of this guide will refer to this path as "<core path>")
    2. Modify the "PML_generalSystemProperties.cfg" file as follows
      a. Give "pml.loadProgramOnPMLCriticalError" a value
    3. In your launcher, add the following, substituting the "<core path>" with what you copied in step 1
            -javaagent:<core path>/PMLPremain.jar=-MCSide:Server
    4. In any and all modpacks you want to install PML in, extract the "PML" folder from the PML zip folder (this file) to the modpack's ".minecraft" equivalent.
